3 research outputs found

    Traffic Modelling Based on Cellular Automata

    Get PDF
    Jednou z mnoha oblastí, v níž nacházejí svoje uplatnění celulární automaty, jsou i mikrosimulace dopravy. Tato práce analyzuje vlastnosti různých celulárních modelů dopravy od nejednodušších deterministických po složité stochastické odvozené od stěžejního modelu Nagel-Schreckenberg, který je podrobně představen. Na základě tohoto zkoumání je pak navrhnut a v jazyce Java implementován obecný dopravní simulátor schopný vizualizace stavu CA silnice pomocí jednoduchého grafického uživatelského rozhraní, jehož prostřednictvím je uživatel seznámen s klíčovými prvky několika implementovaných dopravních modelů.Among many other fields of science, cellular automata play an important role also in the microsimulations of traffic. In this thesis, we analyze the characteristics of a wide range of cellular automata traffic models from the most simple deterministic ones to complex stochastic automata derived from the pivotal Nagel-Schreckenberg model, which is thoroughly described. As a result of this analysis, a generally usable traffic simulator is designed and implemented in the Java programming language. Its graphical user interface can visualise the state of a road CA to display the key features of the implemented traffic models to the user.

    Hardware Acceleration Using Functional Languages

    Get PDF
    Cílem této práce je prozkoumat možnosti využití funkcionálního paradigmatu pro hardwarovou akceleraci, konkrétně pro datově paralelní úlohy. Úroveň abstrakce tradičních jazyků pro popis hardwaru, jako VHDL a Verilog, přestáví stačit. Pro popis na algoritmické či behaviorální úrovni se rozmáhají jazyky původně navržené pro vývoj softwaru a modelování, jako C/C++, SystemC nebo MATLAB. Funkcionální jazyky se s těmi imperativními nemůžou měřit v rozšířenosti a oblíbenosti mezi programátory, přesto je předčí v mnoha vlastnostech, např. ve verifikovatelnosti, schopnosti zachytit inherentní paralelismus a v kompaktnosti kódu. Pro akceleraci datově paralelních výpočtů se často používají jednotky FPGA, grafické karty (GPU) a vícejádrové procesory. Praktická část této práce rozšiřuje existující knihovnu Accelerate pro počítání na grafických kartách o výstup do VHDL. Accelerate je možno chápat jako doménově specifický jazyk vestavěný do Haskellu s backendem pro prostředí NVIDIA CUDA. Rozšíření pro vysokoúrovňovou syntézu obvodů ve VHDL představené v této práci používá stejný jazyk a frontend.The aim of this thesis is to research how the functional paradigm can be used for hardware acceleration with an emphasis on data-parallel tasks. The level of abstraction of the traditional hardware description languages, such as VHDL or Verilog, is becoming to low. High-level languages from the domains of software development and modeling, such as C/C++, SystemC or MATLAB, are experiencing a boom for hardware description on the algorithmic or behavioral level. Functional Languages are not so commonly used, but they outperform imperative languages in verification, the ability to capture inherent paralellism and the compactness of code. Data-parallel task are often accelerated on FPGAs, GPUs and multicore processors. In this thesis, we use a library for general-purpose GPU programs called Accelerate and extend it to produce VHDL. Accelerate is a domain-specific language embedded into Haskell with a backend for the NVIDIA CUDA platform. We use the language and its frontend, and create a new backend for high-level synthesis of circuits in VHDL.
    corecore